In general, the various operating components of a data processing system are designed to communicate using a data bus having a fixed size. Typically, each component is in turn designed to operate internally using a data bus of the same size. In such systems, the circuitry for interfacing the external data bus to the internal data bus can be relatively straightforward, concerning itself primarily with timing.
In contrast, some systems include components which have internal data buses which are not the same size as the external data bus. For example, it may be desirable to combine a peripheral controller which operates internally using an 8-bit bus with a microprocessor which utilizes a 16-bit external bus. Similarly, it may be advantageous to utilize a special purpose processor which operates internally using a 32-bit bus with a general purpose microprocessor which uses a 16-bit external bus.
In those systems which, for whatever reason, have a size difference between the external bus and the internal data bus of a system element, the interface circuit must compensate for the size difference. One such circuit is described in U.S. Pat. No. 4,633,437, entitled DATA PROCESSOR HAVING DYNAMIC BUS SIZING. In this circuit, each component provides a size signal to the processor indicating the width, in discrete data units, of that particular component's data bus. Upon decoding the size signal, the circuit selectively enables one or more multiplexors to couple the data units comprising the peripheral component's data bus to respective data units of the processor's data bus. This solution, while effective for a component such as a processor which may interact on a cycle-to-cycle basis with components having multiple unique bus configurations, is overly complex and rather expensive in circuitry for a component which does not need to reconfigure on a dynamic basis.
One other example of a circuit which can respond on a cycle-by-cycle basis to data unit misalignment is described in U.S. Pat. No. 4,507,731. In this circuit, multiple transceivers are selectively enabled by address misalignment detection circuitry in order to present to the external bus a predictable alignment of the data units, regardless of the true alignment within the component, in this example a memory. Again, since address misalignment may occur on any cycle, the circuitry is overly complex for a component which is not subject to these same address misalignment problems.